cislovanie riadkov
Otázka od: wlado
2. 12. 2002 23:55
Ahoj,
spravil som si jednoduchy textovy editor (RichEdit) a chcel by som, aby sa
mi tam ukazovali cisla riadkov, tak ako to byva napr. v html editoroch. Ako
na to?
Dik
Odpovedá: ing. Jan Fiala
3. 12. 2002 5:46
Budes to muset udelat pomoci nejake komponenty (treba panel, paintbox
apod), kterou umistis vedle RichEditu.
Pak bude treba zjistit, kterym viditelnym radkem ti zacina richedit a
kterym konci, sirku jednotlivych radku (ktera se muze v RichEditu lisit v
zavislosti na velikosti pisma), zjistit, jestli neni radek zalomeny a
vykreslit si tam cisla radku. Aktualizovat to musis pri kazdem skrolu
RichEditu.
--
ing. Jan Fiala
mailto:jan.fiala@iol.cz
2.12.2002 wlado:
> Ahoj,
> spravil som si jednoduchy textovy editor (RichEdit) a chcel by som, aby sa
> mi tam ukazovali cisla riadkov, tak ako to byva napr. v html editoroch. Ako
> na to?
> Dik
Odpovedá: Jaroslav Uher
3. 12. 2002 12:57
Ahoj,
On 2 Dec 2002 at 23:39, wlado wrote:
> spravil som si jednoduchy textovy editor (RichEdit) a chcel by som,
> aby sa mi tam ukazovali cisla riadkov, tak ako to byva napr. v html
> editoroch. Ako na to? Dik
podive se do \Delphi\Demos\RichEdit
Jarek Uher
Odpovedá: Peter Ondras
3. 12. 2002 20:23
(* Vytvor novu aplikaciu, vloz na formular richedit a label. Prekopiruj
kompletne cely nasledujuci kod namiesto originalneho kodu vygenerovaneho
z Delphi. Udalosti RichEditu onSelectionChange prirad
RichEdit1SelectionChange. Program ti potom bude ukazovat pohyb priamo
pri pisani, ale aj pri hybani sa v texte.
*)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
RichEdit1: TRichEdit;
Label1: TLabel;
procedure RichEdit1SelectionChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure GetRTRowCol(RichEdit: TRichEdit; var Row, Col: LongInt);
begin
with RichEdit do
begin
Row:=SendMessage(Handle, EM_LINEFROMCHAR, SelStart, 0);
Col:=SelStart-SendMessage(Handle, EM_LINEINDEX, Row, 0);
end;
end;
procedure TForm1.RichEdit1SelectionChange(Sender: TObject);
var RTRow, RTCol: LongInt;
begin
GetRTRowCol(RichEdit1, RTRow, RTCol);
Label1.Caption:='Riadok: '+IntToStr(RTRow)+' Stĺpec:
'+IntToStr(RTCol);
end;
end.
Peter Ondras
peter.ondras@pse.sk
(+421) 0904 421 925
>: -----Original Message-----
>: From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]
On
>: Behalf Of wlado
>: Sent: Monday, December 02, 2002 11:39 PM
>: To: delphi-l@clexpert.cz
>: Subject: cislovanie riadkov
>:
>: Ahoj,
>: spravil som si jednoduchy textovy editor (RichEdit) a chcel by som,
aby
>: sa
>: mi tam ukazovali cisla riadkov, tak ako to byva napr. v html
editoroch.
>: Ako
>: na to?
>: Dik
Odpovedá: wlado
3. 12. 2002 22:54
Dik,
ale ja som nemyslel, aby mi to ukazovalo poziciu kurzora, ale aby som mal
vedla kazdeho riadku napisane jeho cislo. Spravne to pochopil ing. Jan
Fiala, ale pretoze som uplny zaciatocnik je to pre mna trochu malo
konkretne - mohli by ste mi to opisat podrobnejsie.
----- Original Message -----
From: "Peter Ondras" <peter.ondras@pse.sk>
To: <delphi-l@clexpert.cz>
Sent: Tuesday, December 03, 2002 7:53 PM
Subject: RE: cislovanie riadkov
(* Vytvor novu aplikaciu, vloz na formular richedit a label. Prekopiruj
kompletne cely nasledujuci kod namiesto originalneho kodu vygenerovaneho
z Delphi. Udalosti RichEditu onSelectionChange prirad
RichEdit1SelectionChange. Program ti potom bude ukazovat pohyb priamo
pri pisani, ale aj pri hybani sa v texte.
*)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
RichEdit1: TRichEdit;
Label1: TLabel;
procedure RichEdit1SelectionChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure GetRTRowCol(RichEdit: TRichEdit; var Row, Col: LongInt);
begin
with RichEdit do
begin
Row:=SendMessage(Handle, EM_LINEFROMCHAR, SelStart, 0);
Col:=SelStart-SendMessage(Handle, EM_LINEINDEX, Row, 0);
end;
end;
procedure TForm1.RichEdit1SelectionChange(Sender: TObject);
var RTRow, RTCol: LongInt;
begin
GetRTRowCol(RichEdit1, RTRow, RTCol);
Label1.Caption:='Riadok: '+IntToStr(RTRow)+' Stĺpec:
'+IntToStr(RTCol);
end;
end.
Peter Ondras
peter.ondras@pse.sk
(+421) 0904 421 925
>: -----Original Message-----
>: From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]
On
>: Behalf Of wlado
>: Sent: Monday, December 02, 2002 11:39 PM
>: To: delphi-l@clexpert.cz
>: Subject: cislovanie riadkov
>:
>: Ahoj,
>: spravil som si jednoduchy textovy editor (RichEdit) a chcel by som,
aby
>: sa
>: mi tam ukazovali cisla riadkov, tak ako to byva napr. v html
editoroch.
>: Ako
>: na to?
>: Dik
Odpovedá: ing. Jan Fiala
4. 12. 2002 6:19
3.12.2002 wlado:
> ale ja som nemyslel, aby mi to ukazovalo poziciu kurzora, ale aby som mal
> vedla kazdeho riadku napisane jeho cislo. Spravne to pochopil ing. Jan
> Fiala, ale pretoze som uplny zaciatocnik je to pre mna trochu malo
> konkretne - mohli by ste mi to opisat podrobnejsie.
Pokud ti jde jen o zvyraznovani syntaxe pro HTML a ne o skutecny
RichText edior, jako je Word, pouzij radeji balík komponent SynEdit,
který je na tohle urceny.
Na formular das SynEdit, SynHTMLHighlighter, v SynEditu jej priradis a
syntaxe je zvyraznena.
Krome toho umi i zminovane cislovani radku, sloupcove bloky, zalozky
apod.
--
ing. Jan Fiala
mailto:jan.fiala@iol.cz